package com.ygqh.baby.model;

import com.ygqh.baby.ao.DataStatus;
import com.ygqh.baby.ao.ProductStatus;
import com.ygqh.baby.ao.PromotionType;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 〈〉
 *
 * @author guohao
 * @date 2019/4/29 17:15
 * @since 1.0.0
 */
public class ShoppingCarBasicData implements Cloneable {

    private Long carId;

    private Long userId;

    private Long productId;

    private String productCode;

    private Long skuId;

    private Long supplierId;

    private Long quantity;

    private PromotionType salesType;

    private BigDecimal salesPrice;

    private Boolean isCheck;

    private String unitName;

    private String productName;

    private String color;

    private String sizeName;

    private String imagePath;

    private Date createTime;

    private String skuCode;

    private DataStatus skuStatus;

    private ProductStatus saleStatus;

    private Date preSaleDate;

    private BigDecimal realSalesPrice;

    /**
     * 会员价
     */
    private BigDecimal vipPrice;

    /**
     * 新客价
     */
    private BigDecimal newCustomPrice;

    /**
     * 分销价
     */
    private BigDecimal distributionPrice;

    private BigDecimal promotionPrice;

    /**
     * 分享返利
     */
    private BigDecimal shareRate;

    /**
     * 推荐返利
     */
    private BigDecimal foreverRate;

    private boolean special;

    private BigDecimal costPrice;

    private Long brandId;

    public BigDecimal getCostPrice() {
        return costPrice;
    }

    public void setCostPrice(BigDecimal costPrice) {
        this.costPrice = costPrice;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public boolean isSpecial() {
        return special;
    }

    public void setSpecial(boolean special) {
        this.special = special;
    }


    public BigDecimal getPromotionPrice() {
        return promotionPrice;
    }

    public void setPromotionPrice(BigDecimal promotionPrice) {
        this.promotionPrice = promotionPrice;
    }


    public BigDecimal getRealSalesPrice() {
        return realSalesPrice;
    }

    public void setRealSalesPrice(BigDecimal realSalesPrice) {
        this.realSalesPrice = realSalesPrice;
    }

    public Long getCarId() {
        return carId;
    }

    public void setCarId(Long carId) {
        this.carId = carId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Long getSkuId() {
        return skuId;
    }

    public void setSkuId(Long skuId) {
        this.skuId = skuId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Long getQuantity() {
        return quantity;
    }

    public void setQuantity(Long quantity) {
        this.quantity = quantity;
    }

    public PromotionType getSalesType() {
        return salesType;
    }

    public void setSalesType(PromotionType salesType) {
        this.salesType = salesType;
    }

    public BigDecimal getSalesPrice() {
        return salesPrice;
    }

    public void setSalesPrice(BigDecimal salesPrice) {
        this.salesPrice = salesPrice;
    }

    public Boolean getCheck() {
        return isCheck;
    }

    public void setCheck(Boolean check) {
        isCheck = check;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getSizeName() {
        return sizeName;
    }

    public void setSizeName(String sizeName) {
        this.sizeName = sizeName;
    }

    public String getImagePath() {
        return imagePath;
    }

    public void setImagePath(String imagePath) {
        this.imagePath = imagePath;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getSkuCode() {
        return skuCode;
    }

    public void setSkuCode(String skuCode) {
        this.skuCode = skuCode;
    }

    public DataStatus getSkuStatus() {
        return skuStatus;
    }

    public void setSkuStatus(DataStatus skuStatus) {
        this.skuStatus = skuStatus;
    }

    public ProductStatus getSaleStatus() {
        return saleStatus;
    }

    public void setSaleStatus(ProductStatus saleStatus) {
        this.saleStatus = saleStatus;
    }

    public Date getPreSaleDate() {
        return preSaleDate;
    }

    public void setPreSaleDate(Date preSaleDate) {
        this.preSaleDate = preSaleDate;
    }


    public BigDecimal getVipPrice() {
        return vipPrice;
    }

    public void setVipPrice(BigDecimal vipPrice) {
        this.vipPrice = vipPrice;
    }

    public BigDecimal getNewCustomPrice() {
        return newCustomPrice;
    }

    public void setNewCustomPrice(BigDecimal newCustomPrice) {
        this.newCustomPrice = newCustomPrice;
    }

    public BigDecimal getDistributionPrice() {
        return distributionPrice;
    }

    public void setDistributionPrice(BigDecimal distributionPrice) {
        this.distributionPrice = distributionPrice;
    }

    public BigDecimal getShareRate() {
        return shareRate;
    }

    public void setShareRate(BigDecimal shareRate) {
        this.shareRate = shareRate;
    }

    public BigDecimal getForeverRate() {
        return foreverRate;
    }

    public void setForeverRate(BigDecimal foreverRate) {
        this.foreverRate = foreverRate;
    }

    public Long getBrandId() {
        return brandId;
    }

    public void setBrandId(Long brandId) {
        this.brandId = brandId;
    }

    @Override
    protected ShoppingCarBasicData clone() {
        try {
            return (ShoppingCarBasicData) super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return null;
    }
}
